var express = require('express');
var router = express.Router()
var { userModel } = require('../model/usermodel')
var jwt = require('jsonwebtoken')
var moment = require('moment')
// 手机号和密码登录
router.post("/userLogin", async (req, res) => {
  let user = req.body
  let alluser = await userModel.find()
  let findUser = alluser.find(item => item.phone == user.phone)
  if (findUser) {
    if (findUser.password == user.password) {
      let token = "Bearer " + jwt.sign(user, "asdf", { expiresIn: 60 * 60 * 2 })
      await userModel.updateOne({ phone: findUser.phone }, { token: token })
      res.send({
        code: 200,
        msg: "登录成功",
        token,
        user: findUser
      })
    } else {
      res.send({
        code: 202,
        msg: "密码错误"
      })
    }
  } else {
    res.send({
      code: 201,
      msg: "用户名不存在 去注册一个吧~"
    })
  }

})
// 注册功能
router.post('/register', async (req, res) => {
  let phone = req.body.phone
  let password = req.body.password
  if (!phone || !password) {
    res.send({
      code: 200,
      msg: '手机号和密码不能为空'
    })
  }
  let token = 'Bearer ' + jwt.sign({ phone, password }, "asdf", { expiresIn: 60 * 60 * 2 })
  let user = await userModel.create({ phone, password })
  // if (!user) {
  //   return res.send({
  //     code: 400,
  //     msg: "该用户不存在"
  //   })
  // }
  user = await userModel.findOne({ phone, password })

  res.send({
    code: 200,
    msg: "注册成功",
    user,
    token
  })
})

// 验证码登录
router.post('/sendCode', async (req, res) => {
  let phone = req.body.phone//存储手机号
  let captcha = ''//存储验证码
  let effective = "10"//存储有效时长
  function getRanderCode() {
    let code = ''
    for (let i = 0; i < 6; i++) {
      code += String(Math.ceil(Math.random() * 9))
    }
    captcha = code
    console.log(captcha, code, 60)
    return code
  }
  getRanderCode()
  console.log(req.body.phone, captcha);
  // Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher 
  const tencentcloud = require("tencentcloud-sdk-nodejs-sms");
  const SmsClient = tencentcloud.sms.v20210111.Client;
  // 实例化一个认证对象，入参需要传入腾讯云账户 SecretId 和 SecretKey，此处还需注意密钥对的保密 // 代码泄露可能会导致 SecretId 和 SecretKey 泄露，并威胁账号下所有资源的安全性。以下代码示例仅供参考，建议采用更安全的方式来使用密钥，请参见：https://cloud.tencent.com/document/product/1278/85305 // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 
  const clientConfig = {
    credential: {
      secretId: "AKID65veBXiIhMApeMwQn2AA0gFf0ENSXQE5",
      secretKey: "A8uUt8LPwNfliZUH3JOI3d5LUlEVXZpu",
    },
    region: "ap-beijing", profile: {
      httpProfile: {
        endpoint: "sms.tencentcloudapi.com",
      },
    },
  };
  // 实例化要请求产品的client对象,clientProfile是可选的 
  const client = new SmsClient(clientConfig);
  const params = {
    "PhoneNumberSet": ["+86" + phone],
    "SmsSdkAppId": "1400810792",
    "SignName": "和乖乖的小家公众号",
    "TemplateId": "1760952",
    "TemplateParamSet": [captcha, effective]
  };
  client.SendSms(params).then((data) => { console.log(data); }, (err) => { console.error("error", err); });
  let data = await userModel.find({ phone: phone })
  console.log(phone, '123123');
  if (data.length > 0) {
    res.send({
      code: 200,
      msg: "验证码发送成功",
      captcha, //验证码
      effective,//有效时长
      phone,
      time: moment(Date.now()).format('YYYY/MM/DD HH:mm:ss'),//发送验证码时间


    })
  } else {
    res.send({
      code: 300,
      msg: '手机号不存在'
    })
  }
})

module.exports = router;
